package com.gaussian.property.module.biz.vo.projectreport;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.util.List;

/**
 * @description:
 * @author: songqi(13776346982)
 * @date: 2024/8/11 12:59
 */
@Data
@ApiModel("上传项目报告")
public class AddProjectReport {


    @ApiModelProperty("项目id列表")
    @NotEmpty(message = "项目id不能不空")
    private List<String> projectIdList;

    /**
     * 报告类型。mission:任务报告。output:销项
     */
    @ApiModelProperty("报告类型。mission:任务报告。output:销项。check:稽核報表")
    @NotBlank(message = "报告类型不能为空")
    @Pattern(regexp = "mission|output", message = "报告类型值不正确。mission:任务报告。output:销项报告")
    private String reportType;

    /**
     * 月份。
     */
    @ApiModelProperty("月份。格式yyyyMM")
    @NotBlank(message = "月份不能为空")
    @Pattern(regexp = "^(19|20)\\d{2}(0[1-9]|1[0-2])$", message = "月份格式：yyyyMM")
    private String month;

    /**
     * 报告文件
     */
    @ApiModelProperty("报告文件")
    @Valid
    @NotNull(message = "报告文件不能为空")
    private ReportFile file;


    @Data
    public static class ReportFile{

        @ApiModelProperty("文件oss路径")
        @NotBlank(message = "文件oss路径不能为空")
        private String path;

        @ApiModelProperty("文件名")
        @NotBlank(message = "文件名不能为空")
        private String fileName;

    }
}
